@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 144ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u\2 C9DI pCDL~T}CiCDiD`RAMSIZMEMLO MEMTOPSDLST 0SAVMSCXTXTMSCCHACT CHBAS COU}LOR1COLOR2COLOR3COLOR4POKMSKCH SHFLOKLYtLt`L;a kahihiL`h( kahhX e eV}D a f u r$ eFj e( f$L' e%%ҩ$) f r! $šŢɥţŤLs,W} KeLa) r Ke, KeLs f-H$ e ej e( $fh݊rLY` rHrHr fLf rԦHX}HH e@hhhhHHȱ泥`h8` XbHHH ahhhY}ѭ ``H) i)h8`H ah8` Xb b``Ռ 8Z}`Ս`) Le)  Le` eݪ` ?d($ ' b"  d`L[}a (c}0шȱYi آm:ȹݮm1ȹHn(ȹnȹ|oȹp zlk\}й8`` d  d`8`8rr르}r}rإ``&`&H]}H&&hehe` f$uLGxe懩  ~*ɛ!)H ha^}8 hIJƙ e`` ~c d&Ai )H$h dh c``8` H ch ei`_} d5#/(),#>*'0 @AG`8` $)`i(` c ?d%饈H`}H e @ehh扥``La)`ш8``i ݩЭ`i` f b``H a}rh`iy -f veHJJh)pJJ)8` Pf```I%`I%``(`b}``ei````B`{ `H)h) 0 `8  @` r$p yy`~c}HЭ h(``` e` $f e`wjxj f'|!# d f/d} eȹ)  PfiƸөP |Bk` fc)R$ i ie} e)  s sƸ di СP si %#9EGBRDIWTSM*VNH|(||}6|ewN{~|}|wwxG|\}}}x{{"#$%/01o'd ~"$` Hf$* e@ e jf0ԭ1ԭ/) JJЩ` e@ e jf uo f H}}fԍ n0ԩj1ԢН "/ԩ_"#b$%@LHgHȱh iŵ Ŵ~}) eS|` veLht 4k( utH&kH`i t*+3 t e= Ouʈe}櫱*ʈ*H(L*hX$ Hf i Hf f e Hf HgLV` tڠhihi} tiiHHXee f aLshhhҠȱ`*t/t2` e`8`}8`ʊ)?᪠3JJ)` ]3%]33i`i)?i)?`=qqF}8`Ji `H heq uq uq$P Le v w h`hh`e e`$`=-r-r-r vHrH` v v} vLv v v vLv vLiɖ ɶ vLv vLv v vLvɾ vLv vLvH)0)]heeiޘiߠ u i}Li\թ!  v8 v9` u ` u iLiݨݩ i Ƹ` u8`L)}6i,ii) u+ e1 e8`i Ƹи`$ u) e eH Ouhe gLV`$ u})i,汰 e80ԅ Oue汰$Ʊư u) e "u8寅Ʊ gLV`$ u)8,Ʊ} "u􅯥8 Ouㅷ8寅Ʊhhhh f f ?fj e e g .{ f cV yr 2ym zh}eꅈ扠 @eJ @e@ @e6 Hgx 8{e ?f8j e 8{xLV` aڠ d}q`8` dl ?d` "zj` 6d# z Q) z z= zc z^ zW z#`} ѩ zʩ zPk`8`  z z۩թ  ?dҥ zǩ е 6d z} zДb z^/ z 6d< z?- 6d z+ 6d  z ͩ  z` z8`} dH dh XY`8` z z z` z  z z`kkků8`` ?d50+"}   ܩ`8` ?{` ?{x f d` e e e e LV` eei} xaLa c dbH4 e ?dR dG |H e i i# _b% | Hc 0 e eLV` }a:Le c _b u gLV` c _b 6fLa -f u e dL|Hㅈ e dhhhii | }D u7ц08`` c# | _b a xa HgLV` c | _b =b -bڅ ;dܰ }d `` ahhLV`$ eq! e$ fݤ e dp$06 c ;d2, d%} _b M~ܝ HgLV` a cJ dEp0劅 dݥ-թ ?d dǥܪ c _b 6f i GET RELOCATION ADDRE }SS@A/ / $ENTER THE HEX VALUE FOR THE STARTINGD,, $PAGE WHERE YOU WANT EXDDT RELOCATED.F/$ ENTER 2 HEX DIGIT }PAGE # = +6./KM!+B:,!@)B:, @,$ C PLEASE ENTER 2 HEX DIGITS.M @eP[67@,.00  }Q /EXDDT.REL WILL BE ORGed TO RUN AT LOCATION [ AS6-'AVU/ / $ENTER THE HEX VALUE FOR THE START }INGX,, $PAGE WHERE YOU WANT THE EXDDT SCREENZ/$ ENTER 2 HEX DIGIT PAGE # = +6./[M!+B:,!@)B:, @ },$ C PLEASE ENTER 2 HEX DIGITS.M @\[67@,.00  Q /EXDDT'S SCREEN WILL BE LOCATED AT LOCATION }[ A_6-'AVb% % SETTING UP DEFAULT SCREEN.d88... *** PART 1 - COPY SCREEN SET UP STUFF *** ..."f };6-#-@@- A%7 AP; g A%6- APi! ! COPYING STANDARD PART.l/ }-@A! A%+ AP/ n..... *** PART 2 - RELOCATION PART *** ...s, , !NOW RELOCATING MAIN PART OF }CODE.x" A}1 A%6-!6-$AV'6-1 AP A% AP! A% Au! AP }?-@Ai! A%'"1 Au5"? A AP6-%@ ..... *** NOW DO RUN L }OCATION PART *** ...1 1 &NOW SETTING UP INITIALIZATION ADDRESS./-@@! A%+ AP/ ! A }% Au! AP@@( ALL DONE***********************GETS A BYTE AND$$ }DOES THE DEC TO HEX CONVERSION!)@6-%@!$*************************WRITES A BYTE OUT }*@$RELOCATES A BYTE 6-&%$*""****************************+((CONVERTS FROM HEX STRIN }G TO NUMBER,.6-#-@@.6.7<,6E-@@"7<,496-%+&@,$8,E6-@ };  $**********************THIS IS THE CODE THATHANDLES ERRORSa6-F:A,"Ap! W } 1FILE EXDDT.OBJ IS NOT ON THE DISKETTE IN DRIVE 1.a APj"AD ` IERROR 144 OCCURRED. THIS MIGHT BE A WR }ITE PROTECT TAB ON YOUR DISKETTE.j APCC ERROR  OCCURRED AT LINE F:A,%AV$F:A,&@ }@&6002,6005,6010,6015,6028602D,6035,6038,603B,603E6047,604C,6051,6058,60676082,6085,60A8,6 }0B2,60B560BF,60C2,60CE,60D1,60D460E0,60E3,60E8,60ED,60F460FE,6106,610C,6110,61146117,611A,611D,6137,6 }17A6193,61B8,61EB,61F5,6200623C,6256,6265,627A,629A62A1,62A4,62E4,62ED,62F662FF,6308,6311,6316,631B }6334,6341,6356,635D,636A6371,63B5,63C9,63F1,64286441,6446,645C,6464,6486649B,6501,6508,6515,651C6 }537,6578,657B,6592,65AB65B4,65BF,65D5,666E,66AE66B8,66BD,66C9,66CE,66D366F7,66FD,670D,671E,6741674A,6 }779,6780,6786,679A67A3,67AA,67BC,67BF,67C2##67CD,67D2,67F7,6804,6811,6816681B,6830,6839,6840,6847684C,6 }85B,686D,6872,68756878,688E,689A,68A8,68AD68BB,68C1,68C7,68D0,68EC68FC,6908,690D,6918,691B691E,6921,6 }924,6927,692A##692D,6930,6933,6936,6939,6940694D,6955,696B,696E,697B6980,69A1,69A6,69AE,69CE<<69E1,69E3,6 }A72,6A89,6A8C,6A92,6A98,6A9E,6AA1,72AF,72B1 72B3,72B5,72B7,72B9,72BB 72BD,72BF,72C1,72C3,72C5 72C7,72C9,72CB,7 }2CD,72CF 72D1,72E8,72EA,72F4,72FD 7302,7305,7327,732C,732F##7332,7338,733B,735E,7395,73A473C3,73DD,73E2,7 }3EB,73F073F6,73FA,7409,741B,7420742D,7470,7473,74767479,747E,7481,7484,7487748A,74B4,74DE,74E1,74E4 }7508,750D,751E,75A0,75A47775BF,75C2,75C5,75C8,75CB,75D4,75D7,75DC,75E1,75F57609,760D,7617,761B,761F7625,7 }628,762B,762E,76317634,7637,763A,7642,76477654,7657,765A,765D,76607663,7666,766F,7672,76757678,769E,7 }6A3,76A8,76C776CE,76DB,76E1,76E6,76EB7711,774E,7753,7758,7772777D,7782,7786,7793,7796779D,77B3,77C3,7 }7DF,77EC 77F1,7803,7806,780D,7824!7834,7854,7857,785A,785F"7864,786D,7870,7877,787A#7881,7886,788B,7890,7 }8AE$78B8,78C2,78C7,78D0,78DC%78E1,78E6,78ED,78FA,78FD&7904,7919,7938,793F,7949'7953,795A,796B,7970,797B( }7980,7987,798E,799C,79AD)79BA,79C9,79D0,79EB,79F6*7A03,7A08,7A13,7A2A,7A35+7A3A,7A49,7A56,7A5D,7A64,7 }A6B,7A7C,7A87,7A92,7A98-7AAE,7AB5,7ABC,7AC2,7AC9.7AD0,7AD5,7AD9,7ADE,7AF5/7B30,7B3A,7B43,7B4A,7B5307B58,7 }B62,7B6A,7B78,7B7B17B8B,7B90,7B93,7B96,7BA727BAA,7BB9,7BBE,7BC3,7BC837BCD,7BD3,7BD8,7BDB,7BEC47BFF,7C02,7 }C05,7C0F,7C125##7C15,7C22,7C25,7C28,7C2B,7C2E67C33,7C36,7C39,7C3C,7C417##7C44,7C47,7C57,7C5A,7C76,7C8D87CA4,7 }CAB,7CB0,7CB7,7CC697CC9,7CCC,7CCF,7CD6,7CDB:7CE2,7CEA,7CF1,7D00,7D10;7D15,7D1E,7D24,7D2B,7D30<7D3B,7D3E,7 }D47,7D5F,7D64=7D71,7D7E,7D83,7D95,7D98>7D9B,7DA0,7DA5,7DAC,7DB9?7DCA,7DCF,7DDE,7DE1,7DE6@7DE9,7DEC,7DEF,7 }DF8,7DFDA7E02,7E09,7E2D,7E58,7E67B7E6F,7E74,7E7B,7E89,7E9BC7EA1,7EA8,7EB8,7EDC,7EE8D7EF6,7EF9,7F12,7F17,7 }F1BE7F24,7F3F,7F4A,7F7D,7F82F 7FFFD:RELOCATE.BAS8,7EB8,7EDC,7EE8D7EF6,7EF9,7F12,7F17,7 R;MVBMACRO BY1,BY2%LLDA %1STA %2ENDM;********************************VBREAKEQU $0206VKEYBDEQU $0208VVBKILEQU $}0222VVBKIHEQU $0223VVBKDLEQU $0224VVBKDHEQU $0225COLDSTEQU $0244GPRIOREQU $026FCOLR0EQU $02C4COLR1EQU $02C5COL}R2EQU $02C6COLR3EQU $02C7COLR4EQU $02C8RAMSIZEQU $02E4MEMTOPEQU $02E5MEMLOEQU $02E7CRSINHEQU $02F0CHACTEQU $02}F3CHBASEQU $02F4CHEQU $02FCSDLSTLEQU $0230SDLSTHEQU $0231HPOSP0EQU $D000GRAFP0EQU $D00DGRACTLEQU $D01DDMACTLE}QU $D400SDMCTLEQU $22FCOLPM0EQU $D012*******************************THIS IS A TEST PROGRAM* FOR EXDDT**ORG $40}00STARTLDA # HIGH SYMTABPHALDA # LOW SYMTABPHAJSR DDTSJSR DDTLDA 88STA INDIRLDA 89STA INDIR+1LDY #4LD}A #41LOOP1STA (INDIR),YDEYBPL LOOP1MVB #$14,COLR0MVB #$34,COLR1MVB #$50,COLR2MVB #$74,COLR1MVB #$94,COLR4ST}A COLPM0MVB #80,HPOSP0MVB #$FF,GRAFP0LDA SDMCTLORA #$14STA SDMCTLMVB #2,GRACTLHEREJMP HERE;;DDTSEQU$6000D}DTEQU$6003INDIREQU$80DOSVECEQU$ADOSINIEQU$C;SYMTABDB'TESTV1'DW$100DB2DB'LOOP1 'DWLOOP1DB0DB'}HERE 'DWHEREDB0DB'DOSVEC'DWDOSVECDB2DB'DOSINI'DWDOSINIDB2DB'VKEYBD'DWVKEYBDDB2DB$FF;;}ORG$FEDW$4400END STARTSVEC'DWDOSVECDB2DB'DOSINI'DWDOSINIDB2DB'VKEYBD'DWVKEYBDDB2DB$FF;;@@@HUH ` `XY)4PtЩPЩ Э/ /LR@TESTV1LOOP1 @HERE R@DOSVEC }DOSINI VKEYBDD@4PtЩPЩ Э/ /LR@TESTV1LOOP1 @HERE R@DOSVEC !@2 C9DI pCDL~}CiCDiD`RAMSIZMEMLO MEMTOPSDLST 0SAVMSCXTXTMSCCHACT CHBAS CO}LOR1COLOR2COLOR3COLOR4POKMSKCH SHFLOKLYtLt`L;a kahihiL`h( kahhX e e}D a f u r$ eFj e( f$L' e%%ҩ$) f r! $šŢɥţŤLs,} KeLa) r Ke, KeLs f-H$ e ej e( $fh݊rLY` rHrHr fLf rԦH}HH e@hhhhHHȱ泥`h8` XbHHH ahhh}ѭ ``H) i)h8`H ah8` Xb b``Ռ 8}`Ս`) Le)  Le` eݪ` ?d($ ' b"  d`L}a (c}0шȱYi آm:ȹݮm1ȹHn(ȹnȹ|oȹp zlk}й8`` d  d`8`8rr르}r}rإ``&`&H}H&&hehe` f$uLGxe懩  ~*ɛ!)H ha}8 hIJƙ e`` ~c d&Ai )H$h dh c``8` H ch ei`} d5#/(),#>*'0 @AG`8` $)`i(` c ?d%饈H}H e @ehh扥``La)`ш8``i ݩЭ`i` f b``H }rh`iy -f veHJJh)pJJ)8` Pf```I%`I%``(`}``ei````B`{ `H)h) 0 `8  @` r$p yy`~}HЭ h(``` e` $f e`wjxj f'|!# d f/} eȹ)  PfiƸөP |Bk` fc)R$ i i} e)  s sƸ di СP si %#9EGBRDIWTSM*VNH|(||}6|ewN{~}|wwxG|\}}}x{{"#$%/01o'd ~"$` Hf$* e@ e jf0ԭ1ԭ/) JJЩ` e@ e jf uo f H}fԍ n0ԩj1ԢН "/ԩ_"#b$%@LHgHȱh iŵ Ŵ}) eS|` veLht 4k( utH&kH`i t*+3 t e= Ouʈe}櫱*ʈ*H(L*hX$ Hf i Hf f e Hf HgLV` tڠhihi} tiiHHXee f aLshhhҠȱ`*t/t2` e`8`}8`ʊ)?᪠3JJ)` ]3%]33i`i)?i)?`=qqF}8`Ji `H heq uq uq$P Le v w h`hh`e e`$`=-r-r-r vHrH` v v} vLv v v vLv vLiɖ ɶ vLv vLv v vLvɾ vLv vLvH)0)]heeiޘiߠ u i}Li\թ!  v8 v9` u ` u iLiݨݩ i Ƹ` u8`L) }6i,ii) u+ e1 e8`i Ƹи`$ u) e eH Ouhe gLV`$ u })i,汰 e80ԅ Oue汰$Ʊư u) e "u8寅Ʊ gLV`$ u)8,Ʊ } "u􅯥8 Ouㅷ8寅Ʊhhhh f f ?fj e e g .{ f cV yr 2ym zh }eꅈ扠 @eJ @e@ @e6 Hgx 8{e ?f8j e 8{xLV` aڠ d }q`8` dl ?d` "zj` 6d# z Q) z z= zc z^ zW z#`} ѩ zʩ zPk`8`  z z۩թ  ?dҥ zǩ е 6d z} zДb z^/ z 6d< z?- 6d z+ 6d  z ͩ  z` z8`} dH dh XY`8` z z z` z  z z`kkků8`` ?d50+"}   ܩ`8` ?{` ?{x f d` e e e e LV` eei} xaLa c dbH4 e ?dR dG |H e i i# _b% | Hc 0 e eLV` }a:Le c _b u gLV` c _b 6fLa -f u e dL|Hㅈ e dhhhii | }D u7ц08`` c# | _b a xa HgLV` c | _b =b -bڅ ;dܰ }d `` ahhLV`$ eq! e$ fݤ e dp$06 c ;d2, d%} _b M~ܝ HgLV` a cJ dEp0劅 dݥ-թ ?d dǥܪ c _b 6f i } extender will default depending on the type of file, using the extenders documented at the beginning of the reference guide.?} Rembrant pictures don't have file names, but it will ask for the Rembrant mode (0-4) the picture was drawn in. Then it loads@} the picture from disk. The picture is visible for a few seconds so you can view it. The program then asks you for the save oA}ptions. Pictures can be saved with or without an embedded graphics command, and with either no, 5 or all 9 color registers.B}Please bear in mind that Rembrant modes 1,2 and 3, which correspond to Graphics 9, 10 and 11, cannot have text windows, and MC}ode 2 (graphics 9) uses all nine color registers. Also remember that the Hi-res 4 color mode, Graphics 15, (Micro IllustratorD}, Micro Painter and Rembrant mode 4) are not supported by the operating system on the old 400/800 computers. You should not eE}mbed a graphics command if you intend to load these pictures on older computers, you should call the GRA15 routine yourself iF}nstead.P - Exchange color registers. A=USR(SWAP,REG1,REG2)SWAP exchanges two color registers. The values in the regi4.4 EDITOR.BAS - The Editor.If you have already worked your way through the tutorial then you know what the editor can d!H}o. If not then go and do so now. The program loads a default map of SCRNCHAR.MAP if there is one on the disk at load time. Th!I}en it runs a program called AUTORUN.PGM if it finds one on the disk. This is useful for changing the defaults. The following !J}is a full definition of ALL the editor commands.? - Directory.? [drive] [filename]Used to provide a disk directory of t!K}he current file. When drive is not specified it defaults to the Input drive.e.g.? 1? TEST*.*? 2 *.SCR* Comment.Use!L}d to document your editor programs." - Ditto.Will repeat any command except a Run.A - Alter Extender.A [type [exte!M}nder]]Used to alter the default extenders in the editor. When used without any parameters it displays the current settings !N}in the Last Command Line. Type can be C compressed, D drawit, P Paint, R Runable programs or U User maps.e.g.A C TSTA R!O}B - BeginB type filenameThis command starts building an animation or macro. Type can be A for animation or M for macro.!P}e.g.B A TESTB M WORKC - Color.C valueC reg,col,lumThe first format is used for setting values in the internal co!Q}lor register. This value is used like COLOR in the drawing commands, it is used as the spacing between characters in the Inse!R}rt Character command and as an offset in the Insert String command. Please consult your Basic manual for the correct offset v!S}alues.The second format is used to change the colors displayed on the screen. It is similar to the SETCOLOR command except !T}that background is register 0, not 4.e.g.C 1C 3 9 4D - Define.D type valueD S xloc,ylocThe first format is used!U} to change some of the editor defaults. D I will change the Input drive, D O will change the Output drive and D B will change!V} both drives. D C will change the format of the color line. D C 1 shows 4 playfield colors in text format, D C 2 shows 5 play!W}field colors in numeric format and D C 3 shows all nine registers in Hex.D S or Define Symbol creates a 1 character map of !X}symbol $. The character is a rectangle from the current cursor position to the xloc,yloc specified.e.g.D I 8D C 3D S 20!Y} 20E - Exchange color.E reg1 reg2 [R]When R is not specified this command exchanges which registers are used to plot w!Z}hich colors, leaving the screen unchanged. It's most common use is to change the text window and background colors.When R-R![}eplace is specified then all occurences of register 1 are replaced by register 2. This is used to purge a register from the s!\}creen. Its most common use is to change the colors of the default character set.e.g.E 1 3E 2 3 RF - Fix Disk.F typ!]}ePaint is now published by ATARI but it was originally published by RESTON. The RESTON version of Paint was copy protected !^}by moving the disk directories to different sectors than DOS uses. This means that you could not access your pictures from DO!_}S. F D (fix DOS) copies the RESTON Directory to the DOS directory, making your pictures DOS accessable. F R (Fix Reston) copi!`}es the DOS directory to the Reston Directory so Paint can find them. It is vitally important that the two directories be kept!a} identical at all times.If you have Paint by Reston then use a separate disk, formatted by Paint, for your paint screens. U!b}se a F D at the beginning of your editor session and a F R at the end. Fix always defaults to the input drive.If you do not!c} have Paint by Reston DO NOT USE THIS COMMAND. It is dangerous since it does direct sector I/O. This command should never be !d}included in a program. It always displays a SURE? prompt.G - Graphics.G mode.Identical to issuing a graphics command. !e}The editor supports modes 1-7.e.g.G 7H - help.H [command]The help command displays the general format of all the c!f}ommands, and some hints on the use of some features. You can specify a particular command, or browse through all the commands!g}. Help is most useful when you know how to use the editor, but have not used it for a while. To get help the file SCRNHELP.FI!q}B%DOS SYSB*)DUP SYSBDSEXDDT OBJB3RELOCATEBASB TEST MACBTEST OBJDEXDDT RELB<GDOC 006BNDOC 007B DOC 008BADOC 009B!ANTICTL2BASB&CHOPPERHMAPB-SHIP MAPB 2CHAR31 MAPB ;CHAR23 MAPBDSEQ1 PGMBFSEQ2 PGMBHANTIC PGMBNSHIP PGMBQMENU PGMBVTITLE PGMB\SELECT1 PGMB^SELECT2 PGMBbAUTHOR PGMBfRAYGUN SNDBgCASTLE1 SCRBvTURRETA SCRBwTURRETADSCRBxTURRETB SCRByTURRETBDSCRBzTURRETC SCRB{TURRETCDSCRB|CLEAR SCRBFLASH SCR/]5BPgĀĀgĀ g `!!&g"."##x$ $&%%_ '^'(Ug&U)̀(L must be on the disk in drive 1.e.g.HH CH GI - Insert.I P colorI L xloc,ylocI R xloc,ylocI S stringI C strin!r}gI n stringI P or Insert Point will place a point of any color at the current cursor position.I L or Insert Line will dr!s}aw a line in the current color from the current cursor position to the location specified. I R or Insert Rectangle is similar!t}, but uses the current and specified locations as the opposite corners of a rectangle.I S will insert the string into the s!u}creen. Used for inserting text into a graphics 1 or 2 screen, but can be used with the values 0-3 to draw on a graphics 3-7 s!v}creen.I C will insert characters or symbols from the current map into the screen. Used for adding text to a graphics 3-7 sc!w}reen, or symbols of any type. Not very useful in graphics 1-2 unless you are going to use a redefined character set, and the !x}map contains your matrix images. I n, where n is a number, will insert the nth letter from the string. This format is very us!y}eful when creating symbol animations from a program in combination with a user register.In both the I S and I C command lea!z}ding spaces are significant. When used in a program, trailing spaces are too.e.g.I P 2I L 10 10I R 120 20I S HI THERE!{}I C WOMBATS RULE OK!I #0 ABCJ - Jump or Justify.J dir distThe Jump command repositions the screen. Direction can be !|}Up, Down, Right or Left.e.g.J U 10J R 5J L 7J D 20K - Keyboard.K commentWhen the K command is encountered in a !}}program, the editor gets a command from the keyboard. Use a comment to remind yourself what to do.e.g.K insert next chara!~}cterL - Load.L type filenameThe Load command is the main way to read data into the editor. Type can be Compressed, Dra!}wit, Paint, User maps or eXtra long. Load defaults to the Input drive. The extender defaults with the type of file.L X is a!} special form of the L C command, used when working with longer animation screens. It uses the other viewing area as well as !}the normal I/O buffer. This may allow you to test an animation with loops and sound effects, that won't fit into the standard!} 3840 byte buffer. The other viewing area is corrupted, and will contain garbage next time you look at it.e.g.L C CASTLE1!}L D DWARFL P DRAGONL X TEST.SEQL U CHAR21M - MERGE.M filenameThe merge command will copy a file to the current an!}imation file. It is used to combine sections of an animation into longer segments. It defaults to the input drive and compres!}sed extender.You can cheat and use a B A/M/T A sequence to copy a file of any type, since merge does not edit the file.N!} - New.New clears the current screen without resetting the graphics mode or color registers.O - Overlay.O type.Used !}in the creation of overlays. Overlay Fill, fills every PIXEL of background in the current screen, with the corresponding pixe!}l of the other viewing area. Overlay eXtract changes every BYTE that is the same as the other viewing area to background. Ove!}rlay Both does an O F followed by a O X.e.g.O FO XO BP - Printer Toggle.If you have a line printer attached to you!}r system, a P will switch the printer on/off. All the commands entered via program or keyboard will be echoed to the printer.!} This is useful when you are trying to work out a technique for a program, or when trying to find a bug in a program.r can d vQ - Query.Q SQ FQQ xloc yloc [a]The Query Space command shows the free space available. This is very useful when ch%}anging the code. This should never fall below 50 bytes or strange things start happening.The Query File command shows the l%}ast Input, Output and Animation files. This is useful when converting lots of files and you forget where you are.The other %}forms of the Query command show the cursor position, and position the cursor. You can move the cursor with the arrow keys, an%}d do some simple drawing while under the Q command. Press return to accept the new position. This is illustrated in great dep%}th in the tutorial. The presence of any third parameter positions the cursor without pausing. Q always works as if you had a %}third parameter when used in a program. Q is the only command that changes the cursor position.e.g.Q SQ FQQ 10 10Q 10%} 10 AQ 10 10 XR - Run.R filenameRun an editor program. Run defaults to the Input drive and the the Run extender. Prog%}rams may be nested three deep. i.e. You can run a program which runs a program, which also runs a program. Programs are very %}useful any time you have to repeat a sequence of commands. You can stop a running program at any time, by pressing the ESCape%} key.e.g.R TESTR D2:MACRO.001S - Save.S type filenameSave the current screen to disk. Drive defaults to the Outp%}ut drive and extender defaults based on the type of file. Type may be Compressed, Drawit, Overlay, Paint or User map.A comp%}ressed screen contains 3 SCRLD commands: Graphics, Load 9 regs and Load Screen. An overlay screen is a compressed screen with%}out the graphics command.Only Graphics 7 screens may be saved in Paint or Drawit formats.The setting of the Window contro%}ls whether or not a saved screen will have a text window when it loads.T - Terminate.T typeThe terminate command ends %}a Build Macro or Build Animate sequence. Type may be Macro or Animate.e.g.T MT AU - User Registers.U noThe User c%}ommand allows you to see the current values of the user registers. U or U 0-4 views the first 5 registers, U 5-9 views the se%}cond 5 registers.e.g.UU 2U 5V - View.V [0 or 1]The view command changes the current viewing area. A V on its ow%}n toggles between the two areas. V 0 or V 1 may be specified if you wish.W - Window.W [action]W on its own turns the t%}ext window on or off. W Y or W N are more useful in a program. W P or Window Pause turns off the editor text window so you ca%}n view the whole screen. W C or Window Clear removes any screen data currently under the text window.e.g.WW YW PW C%}X - Delete FileX filenameX - cross out. The X command deletes files. Wild cards may be used, just like in DOS. The X comm%}and defaults to the Input drive. Extenders do not default.e.g.X TEST.SCRX D2:WORK.FILX TEST.*Y - Exit to DOS.Y, W%}hy not? It was the only letter I had left!Z - Zoom.Z HZ type sectionZoom Half changes a four color screen to its two %}color equivalent. Graphics 7 goes to 6, graphics 5 goes to 4. Colors 0 and 2 become color 0, colors 1 and 3 become color 1.%}Zoom Up or Zoom Down convert between the graphics modes. Section is the origin or destination section as follows.1 upper le%}ft corner2 upper right corner3 lower left corner4 lower right cornerThe Zoom command allows you to use Paint or Drawit t%}o prepare screens for viewing in graphics modes 3-6.e.g.Z HZ D 1Z U 2The Numeric Commands.The numeric commands ar%}e used withing A B A/T A sequence to write individual SCRLD commands to a compressed file. These commands do not change the s%}creen in the editor, they take effect when the compressed screen is loaded. Please consult the SCRLD routine for a full descr%}iption of the format of these commands on the file.0 - GraphicsThis command writes the current graphics mode/window setti%}ng to the file.e.g.01 - Load 9 Registers.This command writes a load 9 register command and the registers to the file%}.e.g.12 - Load 5 Registers.This command writes a load 5 register command and the registers to the file.e.g.2%}3 - Write current screen.This command writes a load screen command and the compressed screen data to the file. Prior to thi%}s release of Dragons Tail, the compressed screen command on file was a 3, now it is a 15. In the worst case a 15 format scree%}n may be 2 bytes longer than a 3 format screen, but when working with overlays, the 15 format is likely to by 20-50 bytes sho%}rter. The SCRLD routines recognise both formats, so screens created using the utility on DRAWIT, and the DRAGON QUEST screens%} can still be loaded, but the DRAWIT utility does not recognise the 15 format, and should no longer be used.e.g.34 - L%}oop.This command writes a loop command to the file. A single loop can repeat up to 255 times and loops can be nested 10 dee%}p.e.g.4 105 - End Loop.This writes an end loop command to the file. The SCRLD commands between the last loop and the%} end loop will be repeated the number of times specified on the loop command.e.g.56 - Wait Jiffies.This command tell%}s SCRLD to wait for n jiffies (1/60 sec).e.g.6 107 - Wait Seconds.This command tells SCRLD to wait for n seconds.%}e.g.7 38 - Sound.This command tells SCRLD to issue a sound command. Its parameters are exactly the same as a Basic SOU%}ND command.e.g.8 0 80 10 49 - Direct Output.This screen editor command is a direct write to the file. It can have an%}y number of parameters. If the parameter is greater than 255 it writes a word (low byte/high byte) to the file. If the parame%}ter is less than 256 it writes a byte to the file. This command is used to set up the advanced animation commands of SCRLD (9%}-14), which are not directly supported by the editor. It could also be used to write any other commands but why would you wan%}t to do so. The 9 editor command is extremely rarely used and only the more advanced programmers are likely to use it. I have%} yet to use a 9 command, other than to test that it worked.e.g.9 9 764 2559 14 1664The User Registers.#n OP valT%}here are 10 user registers that can be used instead of any numeric, or character field. These user registers support 5 arithm%}etic operators, =, +, -, *, and /.#1 + 3#0 * 2The registers support 4 logical operators, E (equal), N (not equal), > and%} <. The editor will execute all the commands between a logical statement and a *E if the logical command is true. Logical com%}mands can be nested, but they all end at the first *E.#1 E 2J D 4*E#2 > 35#3 = 1Q 20 20*EIn the second example abo%}ve, Q 20 20 will only be executed if #2 is greater than 35 AND #3 is equal to 1.To use the numeric value of a register in a%} command, insert #n.J D #1Q #0 #1I #2 STRINGTo use the character value of a register in a command, insert @n. This is s%}imilar to the CHR$ Basic function. i.e. If #1 contains 65, then @1 is an A. CHR$(65) is an A.I S @2I C @1J @1 #2L C @2%}The registers support fractions, but there integer value is used in commands where integers are required.#1 + 0.5#2 * 1.1%}Final Hints.Try not to confuse the arithmetic operator =, with the logical operator E.In addition to the comment * sta%}tement, you can put a comment on any line, where there is no chance the editor will think it is part of the instruction.e.g%}.J D 20 Jump down 20.B M TEST Build a work macro.O F Fill in Background.C 3 9 4 Text window is Blue.are al%}l valid butC 1 Draw in color 1is not. This is because the C command has two formats, one of which has 3 parameters.%} The editor thinks you have entered the second format, and that the comment is actually a parameter.As a general rule, do n%}ot use end-of-line comments on the A, C, D, E, I, Q, U, V, W or Z commands.When designing your programs use the buffers as %}much as possible, and try to avoid comparativly slow disk I/O commands. The L B command is much faster then a L C command, wh%}ich can be very significant in long sequences.Some Animation Techniques.The easiest form of animation to understand, is%} Hand Drawn Animation. This is where you draw each frame of a sequence as a separate screen, and use the editor to combine th%}em. A very simple program will combine the pictures, something like:K Load next frameO X36 6O FVwill work nicely. Af%}ter you have started the animation and saved to first screen, View the other area and Run this program, for the number of scr%}eens in the animation minus 1. This form of animation produces the overall best effects but takes the longest to do, since ea%}ch screen must be drawn.The type of animation that takes the least work is User Map animation, where you draw just the back%}ground and use maps to insert the moving images. This type of animation tends to look like player missile animation, but you %}can move much larger images, and you don't need to be an expert assembler programmer to use it. In User Map animation almost %}all the work can be done by programs, but the programs tend to be longer and more complicated.Using map animation on a char%}acter screen, with redefined character sets is an extremely powerful although complicated technique. This form of animation w%}ill produce extremely long sequences with comparativly short files. To set up and successfully execute this technique may tak%}e months but the end effect is likely to be stunning.As a general rule, design your animations as if you were making a movi%}e. Lay out story boards, plan your "camera" angles and plan your pauses. Build your animations in short 20-30 second sections%} or "scenes" and combine them into longer sections with the merge command. free space available. This is very useful when ch$K4.5 MAPPER.BAS - Build Maps and Symbol Tables.The mapper program will convert between maps used by the editor, and symbo)}l tables prepared using a word processor. The file names will default to D1: and the extenders to .MAP or .SYM depending on t)}he type of file. The mapper program edits your symbol tables and will output an error message if it finds anything it doesn't)} like. A FORMAT error means that your symbols are not all the same size. A SIZE error means that your symbol table is longer )}than the 1050 bytes that the editor can handle.4.6 DEMO.BAS - A demo of the SCRLD routine.This program loads a 2 minute)} long animation sequence which was originally intended to be the menu for this disk. Common sense prevailed and I realised yo)}u probably didn't want such a long menu, so I included it as a demo. The menu selections will still work as shown except that)} BUFFER and BUILDER are now on volume 1 of the library.This animation is used as an example in the tutorial so you will wan)}t to view it a couple of times. This sequence was built by the EDITOR almost entirely by EDITOR programs, and all these prog)}rams, screens and maps are included on the disk. You can rebuild this sequence from the original programs if you want. It tak)}es about 90 minutes to build. and Symbol Tables.The mapper program will convert between maps used by the editor, and symbo(5. Possible Modifications to the EDITOR.Since you can get at the source code of the EDITOR, you can modify it if you want. -}If you choose to do so there are a few things you should know. The editor is out of space, it is full, only 30 or so bytes -}remain for inserting any last minute fixes. This program contains every trick I know to reduce program size. The editor uses -}120+ variable names and you are only allowed 128. Do not have any grandios schemes of adding any major features, they are not-} going to fit.However, there is one change that you might consider. If you do not have Paint by Reston the Fix command is n-}ot only useless, it is posatively dangerous. Delete the code supporting the fix command (2900-2960) and type a space over the-} F in the CMD$="......" statement (9210). Do not delete the F, this table is positional. Then run the program and do a Q S. S-}ubtract 60 from the number it returns and add this number to the length of CT$ (9110). This will allow you to use longer user-} maps. Do not forget to change the Mapper program to allow the new length.You could do the same with the A comand if you ab-}solutely posatively never intend to change the default extenders. If you have one drawing program and you NEVER intend to get-} another, then you could remove its support code. In all cases just add the bytes you free up onto the user map buffer CT$ an-}d change MAPPER to handle the new size. Never have less than 50 bytes of free space or you will run into strange and inexplic-}able problems. I think parts of Basic and maybe parts of the operating system assume that there will always be some free spac-}e, and use it as a work area. This is just a guess on my part, the problems that arise are wierd.In your programs that disp-}lay the screens you will only use one of the SCRLD routines. If you intend to work in graphics modes that are not supported b-}y the editor, like graphics 8, or Antic Mode 4, then use the other routines to write your own utilities.6. MAC65 Source C-}ode Available.If anyone is interested in how the routines work, send me $14.99 to cover postage, packaging and profit and I-} will send you a copy of the MAC65 source code and macro libraries. This includes all the routines on these disks, and one or-} two that didn't make it.These macro libraries were written specifically to support combining 6502 assembler with Basic pro-}grams, and have many special features to that end. They produce extremely complicated, but very compact object code, but are -}remarkably simple to use. The MAC65 source code written using these libraries looks a lot like a high level language, and is -}very easy to follow. A relative beginner could quickly use these libraries to write their own routines, and they could easily-} by added to BUILDER and combined with other library modules.The macros themselves are extremely complicated and very hard -}to follow. They were written to produce compact, efficent, powerful code, rather than to serve as programming examples. You w-}ould need to be an expert programmer to hope to understand what the macros are actually doing, I have trouble following them -}myself. The object code they produce is relatively easy to follow, and the source code is a snap. They have been heavily test-}ed, and are fully documented so they are very easy to use. The macro libraries themselves took me over 8 months to write and.} debug, but none of the routines that use the macros took over an evening to develop.I make this distinction so no one will.} buy this package and be dissappointed. If you want to learn and understand macro writing, then the MAC65 Toolkit by OSS is a.} good choice. My macros will drive you scatty. If you want to write easy to read, efficient routines, that can be quickly dev.}eloped and tested, and combined with Basic, then this package is an excellent choice.7. ERRATA (The muse of programmers)..}All programs contain bugs! This is an established fact. I just want to mention three bugs you should watch out for here.T.}he first is a bug in DOS 2.0S, which may also be in other versions of DOS. If you open a file for update (OPEN #1,12,0,"D:MYF.}ILE") then do a POINT and then write a block of data that crosses a sector boundary, either via PBYTE or Basic PUT statements.}, then DOS garbles the sector chaining pointers on the sector after the one you started writing on. When you try to access th.}at file you get error 164. Your file is lost. This is an extremely nasty error which I don't think has been previosly documen. }ted.The second is a bug in BASIC. Basic does not handle powers correctly. For instance, version C Basic thinks that 3^2 (3 . }squared) is 10. This bug varies from version to version of Basic. HEXCALC has a correction factor build into it that makes it. } work correctly but I do not know if this will correct the problem on BASIC A or BASIC B. You might like to check it out befo. }re you use HEXCALC to do your Maths Homework.The third problem is a bug in the TAIL routines. (AAAGGGH!!! Yes, I make mista. }kes too!) Under certain circumstances the TAIL routines may not recognise the first string you dimension as being a string. T.}he result varies depending on which routine you call, usually you get a string error. The easiest way to avoid this error is .}to GOSUB the loader routines before you DIMension your strings. Another easy way is to dimension any array you are using or a.}ny string that wont be used with the TAIL routines first. The third way is to make sure that your first string is also the fi.}rst variable used in the program.Since I know about this bug, you may wonder why I don't fix it. To do so I would have to m.}ake the AUTORUN.SYS file about 120 bytes longer. Then it wouldn't end on a 2K boundary, and if you needed a boundary aligned .}buffer, you would end up wasting up to 2K of memory. Since the bug is so easy to avoid, I decided to leave it alone, and admi.}t to my mistake. By the way, do you know the origin of the term program bug. When they were testing one of the first.} computers, they couldn't get it to work properly. After careful checking the engineers found a dead moth in one of the circu.}its. They removed it and everything worked. They joked that they had debugged the computer, and the term stuck. The original .}kamakazi moth is preserved in a museum somewhere, the Smithsonian I think.8. Parting Words.Well the Dragons Tail Disks .}are now complete. I certainly hope you have a lot of fun with them. Some of the techniques involved are a little complicated,.} but I know you will soon get used to them. If you come up with something your really proud of, by all means send me a copy. .}I would be really interested to see what someone with some artistic or musical talent can do with the EDITOR. I have never be.}en much good at either myself. If I get a good reader response I will try to put out a disk containing the best animations, A.}NTIC willing.I would like to thank Charles Cherry of Antic, for his guidance in packaging these disks. Charles Jackson and .}Patrick Bass of Antic for there help with the file formats of various drawing packages. Lastly I would like to thank Jim Hass.}el of Fairbanks, Alaska whose letters on Dragon Quest encouraged me to try and package these routines.If you have any comme.}nts, routines you want to see, changes you would like, or just questions, then please contact me. There is a possibility of t. }hird and fourth Dragons Tail volumes but it is really up to you. Let me know what you would like to see. If the demand is the.}0 FE ##CONVERT ATARIWRITER+ TO ANTICd;@,;@,n2"}6.D1:TAIL2DOC.000x-@@ 6.=:,6-@&B:,-67@<@,.1-67<@,.2 2#}@@2( CONVERTING 67@<@,.2* @@* A3)@2$}@)*@3 A?6-@*@(6-@ 5*@? A@@2%} D1:ANTICTL2.BAS ##CONVERT ATARIWRITER+ TO ANTICd;@,;@,n0&<AB3333311111111133333333333333333333333333333111133333111111111111311111111132223222323332223222322232223111111113111111116'}113333311113113233323332333233323333233332311111133333111131113113333331113222322332333223323333233323311111131133333311133336(}333331111333232333233323332333323333331111133333333311113333333111111322232223222322232223323332331111133333331111111311311336)}333333333333333333333333333333333333331311311111111111333331111133333333333333333333333333333111111113333311111111311111111136*}222322232333222322232223222311111111311111111113333311131113233323332333233323333233332311111133333111311113113333331113222326+}233233322332333323332331111113113333331113333333331111333232333233323332333323333331111133333333311113333333111111322232223226,}232223222332333233111113333333111111131131133333333333333333333333333333333333333331311311111113222322232223111111113111111114_ ABC11111111111111111111333331111111133333333311113333333333333133333333333333331311311311311333333333333333333333333333333:.}30333333333333300003322222330000000020202000000000000200000001111111111111111111133333111111113333333331111333333333333313333:/}33333333333331131131131133333333333333333333333333333333033333333333330000332222233000000000222000000000000202000000111111111:0}11111111111333331111111133333333311113333333333333133333333333333331131131131131333333333333333333333333333333303333333333333:1}000033222223300000000222220000000000202020000033111133333333333331333333333333333313113113113113333333333333333333333333333338.A @ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!"#$%&'()<>-_=|+\*^,.[]/?;:111111111111111111111111111111333313313333313331313331313>3}33133331131131133333131331331333133331133131133333331133131131133331131131333331331333331331333313113113133311311311331333331>4}33133313133133113113113113333133333133133133333133133133133333133133133333313133313113113333133133113333313133313133133333113>5}33113333333131131131131313313313313333313313313313131313313313333313313313131313313313313131131131333113131311333131131131131>6}13133111313131133333311333311333331131131133313133331133111333131131133331333333311313131131133331333331333333331333311311313>7}13133133131311311311311111313133131111111113133333133333133133113131133133111131313111131313131313131331311311111111111313113>8}11311131131113113113131113131311131113311131113131311111111333111111111111111111333111333111333111131131131131131111131333131>9}11111131113111311131313133313131311113131331311111111111113113111111111113313333131131131133113311311311313311111313131111133>:}3113131111131111131111131131111131111131111#$%&'()<>-_=|+\*^,.[]/?;:111111111111111111111111111111333313313333313331313331313<+) @ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-.?333333333333333333333333333333333333333333333333333332223232323232223232333332233B<}23232233232322333333222323332333233322233333223323232323232322333333222323332233233322233333222323332233233323333333222323332B=}33323232223333323232323222323232323333322233233323332332223333333233323332323232223333323232323223323232323333323332333233323B>}33222333332323222323232323232333332223232323232323232333332223232323232323222333332233232322332333233333332223232323232333222B?}33333223323232233232323233333222323332223332322233333222332333233323332333333232323232323232322233333232323232323232332333333B@}23232323232322232323333323232323323323232323333323232323323332333233333322233323323323332223333332333233323332333233333322333BA}32332332333222333332223332322233323222333332333233323332223323333332223233322333323223333332333233322232323222333332223332332BB}33233323333333222323232223232322233333222323232223332333233333323323232323232332333333333333332223333333333333333333333333223BC}3223333332223332332333333323XYZ1234567890-.?333333333333333333333333333333333333333333333333333332223232323232223232333332233@B A SEQ1M CASTLE17 2M LANDING7 1M TURRET6 30M ANTIC6 30M TURRETD6 30M TURRETB6 30M CLEAR6 30M TURRETBD6 30M FE}TURRET6 30M TITLE6 30M TURRETD6 30M TURRETC6 30M AUTHOR6 30M TURRETCD TURRETB6 30M CLEAR6 30M TURRETBD6 30M DPB A SEQ26 30M TURRETB6 30M CLEAR6 30M TURRETBD7 1M MENU7 18 0 198 2 68 1 198 6 68 2 22 4 26 30M SELECT1M SELECJG}T28 0 0 0 08 1 0 0 08 2 0 0 0T A6 30M TURRETBD7 1M MENU7 18 0 198 2 68 1 198 6 68 2 22 4 26 30M SELECT1M SELECH%* ANTIC* MAGAZINE.* THE ATARI* RESOURCE.** BUILD WORK MACROS*B M W1 FLASH IN CHARACTERQ #0 #1#3 E 1I #2 ANTIC*ENI}#3 E 2I #2 MAGAZINE,*E#3 E 3I #2 THEATARI*E#3 E 4I #2 RESOURCE.*E#2 + 1#0 + 1#1 + 5Q #0 #1C 2I L 27 42O X3M NJ}RAYGUN.SNDO FVL BC 1I L 27 42#0 + 3#1 - 5T M*B M W2 PAUSE BETWEEN LINES#2 = 1#1 + 6#3 + 1O X36 30O FVL BTNK} M** INITIAL SET UP*L U CHAR31L C CASTLE1VL BB A ANTICM TURRETA6 30*#2 = 1 CHARACTER#3 = 1 WORD#0 = 12 COLNL}UMN#1 = 8 ROWR W1 5R W2#0 = 12R W1 9R W2#0 = 16R W1 3#0 + 4R W1 5#0 = 16R W2R W1 9R W2M TURRETAD6 30TX W1NM}.PGMX W2.PGML C CASTLEL X ANTICESOURCE.** BUILD WORK MACROS*B M W1 FLASH IN CHARACTERQ #0 #1#3 E 1I #2 ANTIC*EL#* LANDING SEQUENCE* WITHOUT LANDING GEAR* WHICH WAS CREATED BY HAND*B M W1 ONE LANDING CYCLEVNI C @3J D #0W CO B3RO}6 #1O F#0 + 1#1 + #2#3 + 1#3 > 67#3 = 65*ET M* INITIAL SEQUENCEL U SHIPL C CASTLE1Q 20 84#0 = 1 STARTING JUMPRP}#1 = 5 STARTING DELAY#2 = 0.2 TIMER INCREMENT#3 = 65 ASCI "A"B A SHIPR W1 58T AX W1.PGML C CASTLE1L X SHIPO B3Pw* MENU** BUILD WORK MACROS*B M W1 FLASH IN CHARACTERQ #0 #1#3 E 1I #2 1-EDITOR*E#3 E 2I #2 2-MAPPER*E#3 E 3I #VR}2 3-BUILDER*E#3 E 4I #2 4-BUFFER*E#2 + 1#0 + 1#1 + 5Q #0 #1C 2I L 27 42O X3M RAYGUN.SNDO FVL BC 1I L 27 42VS}#0 + 3#1 - 5T M*B M W2 PAUSE BETWEEN LINES#2 = 1#1 + 6#3 + 1#0 = 16O X36 30O FVL BT M** INITIAL SET UP*L UVT} CHAR31L C CASTLE1VL BB A MENUM TURRETA6 30*#2 = 1 CHARACTER#3 = 1 WORD#0 = 16 COLUMN#1 = 8 ROWR W1 8R W2VU}R W1 8R W2R W1 9R W2R W1 8R W2M TURRETAD6 30TX W1.PGMX W2.PGML C CASTLE1L X MENUE 2I #2 2-MAPPER*E#3 E 3I #T^* DRAGONS TAIL.* VOLUME 2.* GRAPHICS** BUILD WORK MACROS*B M W1 ZAP IN CHARACTERQ #0 #1#3 E 1I #2 DRAGONS TAIL.ZW}*E#3 E 2I #2 VOLUME TWO. *E#3 E 3I #2 GRAPHICS. *E#2 + 1#1 + 6C 3Q #0 #1#0 + 3I L #0 #1#1 + 1#0 - 2Q #0 ZX}#1C 2I L 27 42O X3M RAYGUN.SNDO FVL BC 1I L 27 42#0 + 3#1 - 7T M*B M W2 PAUSE BETWEEN LINESO X36 30O FZY}VL B#0 = 8#1 + 6#3 + 1#2 = 1T M** INITIAL SET UP*#0 = 8 COLUMN#1 = 8 ROW#2 = 1 CHARACTER#3 = 1 LINEL U CHAR23LZZ} C CASTLE1VL B** BUILD FILE*B A TITLEM TURRETA6 30R W1 14R W2R W1 14R W2R W1 14R W2M TURRETAD6 30T AX W1.PGZ[}MX W2.PGML C CASTLE1L X TITLEPHICS** BUILD WORK MACROS*B M W1 ZAP IN CHARACTERQ #0 #1#3 E 1I #2 DRAGONS TAIL.X!* LEFT MOVEMENT OF* SELECT AND CHOPPERS*B M W1Q #0 1VNI C AZ D 1Z U 2O B36 3O FVNI C BZ D 1Z U 2O B36 3^]}O F#0 - 1T M*#0 = 79L C CASTLE1L U CHOPPERHVL BB A SELECT1R W1 77T AX W1.PGMVL X SELECT1Z D 1Z U 2O B36 3\g* CHOPPER DECENT*B M W1VJ D 136 3T M*B M W2J U 1W C36 3VT M*B M W3J U 1W C36 6T M**L C CASTLE1L U Cb_}HOPPERHNQ 80 0C 1I R 143 7Q 83 1I C AVL BI C BO XB A SELECT2R W1 10VQ 91 12I L 96 12Q 126 12I L 130 12Q 96 b`}6C 0I R 127 11Q 80 5I L 143 536 3V36 3VQ 96 12I L 127 12C 1Q 80 13I L 95 13Q 128 13I L 144 13R W2 16R W3 5ba}T AX W1.PGMX W2.PGMX W3.PGML C CASTLEL X SELECT1L X SELECT23VT M*B M W3J U 1W C36 6T M**L C CASTLE1L U C`C* AUTHOR*B M W1Q #0 #1#3 E 1I #2 BY *E#3 E 2I #2 ED CHURNSIDE *E#3 E 3I #2 C. 1986. *E#2 + 1#1 + 6Q #0 #1Ifc} S 3333#0 + 4#1 - 6Q #0 #1M FLASH36 8NT M*#0 = 8#1 = 63#2 = 1#3 = 1L U CHAR23L C CASTLE1NB A AUTHORM TURRETfd}CR W1 46 30#1 + 7#2 = 1#3 + 1#0 = 8R W1 146 30#1 + 7#2 = 1#3 + 1#0 = 28R W1 96 30M TURRETCDT AX W1.PGML C Cfe}ASTLE1L X AUTHORQ #0 #1#3 E 1I #2 BY *E#3 E 2I #2 ED CHURNSIDE *E#3 E 3I #2 C. 1986. *E#2 + 1#1 + 6Q #0 #1Id   #0 #1#3 E 1I #2 BY *E#3 E 2I #2 ED CHURNSIDE *E#3 E 3I #2 C. 1986. *E#2 + 1#1 + 6Q #0 #1IhFUUW'U_&U&U%UWUUWUU_UU_UUzWUUUUzz^UUzWUU]UUzz^UUnh}U^gfUUzU UU]UUzU UU^gfUUUUU]UU_ꪪU_ꯪUU^ffUUWUU]Uni}zUU^ffUzUUWUzUWꯪUWUUWUWUꪪUWUWUꪪUWUWnj}UUꪪUWU_UꪪUWUyUꪪUWUUꪪUꪪUzUz ꪪUz nk}Uz UWUUQUWUU@UWUUUWUUUWUU Unl}@UWUUUTUUUUUUUU PAPUUUT @꺪UU@@UPnm} UUQPUP  @UTqPU@꺪3$ U0PU]\\5s5꺪nn}3 0  3  P3 T3 UU@3no}UP3U3UU@3UT3UUUT3E@U3Unp}UU3T UTȨ3 P UT?}@N"@6-@X? A$6-?:<<%@`<,?6-?:<<A<@ ,b3-,6-?:<<>}%<%A($,0 3$SAVE SCREEN TO DISK'6-Av"@#'6-A8@-6-?:<<<,-6-?:<A<<@>} ,< +'0@@@9@@<(>,($CONVERT 08/14/86 (C) 1986>@@>} ( ( (ŠΠϠˠ(  6.SCR A** A*@@4GRAPH>}ICS COMMAND>)()(ŠӠĠٯΩH 6.YN6-?:<,R@A"\#6-@x# @>}A!pf$($(נԠנٯΩp6-?:<,z6-*@# 6-"@#6-&@>}*@ COLORS( (ŠҠӠٯΩ6-?:<,"@xA#((ŠҠ>}ӿ 6.596-?:<,U"@S6-@(*@K6-?:<@<%@<@,U A#76-@>}*@76-?:<@<<@ , SCREEN A 6-?:<<A<@ , 6-?:<<<,$ 6-?:>}<@<<A0,. @$(# INIT2# B<#GG;A0,;Av,;@,;@ ,;@,;@>} ,F#0 6-C:,6-C:,6-C:,'6-C:,06-C:,P#$ N DT1*Ng6-A#;,6-C:,+6-Aa;6. D:DT1.>}OBJJ6-?:<<<,gF:A,@B 4N6-%@6-%A-6-%AC;6-%ApI6-%A`W6->}%Ae6-%As6-%A6-%A>Ns6-%A&6-%A@-6-%AF;6-%ARI6-%A8>}W6-%Are6-%Axs6-%A"6R DT2R[6-A;,6-C:,/6. D1:GF.OBJ>6-?:<<<,[F:A,>}@B Rk 6-6-%@t%6-%AW36-%AA6-%AbO6-%A8]6-%Ak6-%Ax>}S DT3T\6-As;,6-C:,06. D1:GF2.OBJ?6-?:<<<,\F:A,@B T 6-6-%@W$>}U ERRORU(( ĠҠV B  D:CONVERT.BASSECBUPSECPADLMOVSAPBYTSCRBBUFSAVCDT1QLOAQ<Egak haliamg  ,*lonqj'ospt2qurvCRvt xusyoszw {1xv|ov}zT*{y*|y*}y*~y~y*y o oTy0Sm*T** oT:&  oRT&=0SmO{wB@DDwABGDgCBDABBD\*p#) COD BDBD{BDB%kB(O?OO %x`0 3 h ABDqCA D $DDB"DB#DQB$D#oBpBC#qBKrB"DBDCBD3BDCC1DX A DBCD1BDBD2^fed%c2a%`%, MM# B=D%]1~DBD BC3D*BDC6D| 0| 0~X$-D*0 !  wO |&6+0 +; o +"N9A.Gi+O !f "##!$>+%R#&-0C!%(-#" )=!*`%$ +?#,a'& -A%.b)( /C'0c+* 1E)2d-, 3H+4e/. 5J-6f10 7L/8g32 9N1:h54 ;P3<i76 =5>q98 ?C7=Cs;: A9Bt< C;v"E@+F$GB+H&ID+J(KI+L*M)NOW,PK+Q.RM+S0TO+U2VQ+W4X+YS#rTR[US\VS]WS^XS_YS`ZSa[Sb\Sc]Sd^Se_Sf`SgaShbSicSjdSkeSlfSmgSnhSoiSpjSqkSrlSsmStnSuoSvpSwqSxSysRztr{ur|vr}wr~xryrzr{r|r}r~rrrrrrrrRR|%fghiZ ~ * .(   $ CRDSD ,:8s+-+#%{0++ 6 <  /8<++++ +: !$"%#W% &'(DTD+-o/<o12#3'o45C6o7(8o91:=%>?$@A%B:C:D%EFGWHuIJ6BKL M#N! OPPQ2t:FB%DDnB#BB.BTlBU5-t#DAD8MjBC7DDB;DAD  5   5 P 55. r  % #pq t# js uv.w`x!y"z#{$"|"}